using System;

namespace DeSleeper.Library
{
	public class ConfigurationState
	{
		private readonly ConfigurationStateEnum _value;

		private enum ConfigurationStateEnum
		{
			Disabled,
			Enabled,
			Unsupported
		}
        public static ConfigurationState Disabled = new ConfigurationState(ConfigurationStateEnum.Disabled);
		public static ConfigurationState Enabled = new ConfigurationState(ConfigurationStateEnum.Enabled);
		public static ConfigurationState Unsupported = new ConfigurationState(ConfigurationStateEnum.Unsupported);

		private ConfigurationState(ConfigurationStateEnum value)
		{
			_value = value;
		}

		public bool IsSupported { get { return this != Unsupported; } }
		public bool IsEnabled { get { return this == Enabled; } }
        public override string ToString() { return _value.ToString(); }
	}

	

	public class WakeOnLanConfiguration
	{
		public ConfigurationState WakeOnLanEnabled { get; internal set; }
		public ConfigurationState MagicPacketEnabled { get; internal set; }
	}
}